<?php
namespace app\admin666\controller;

use think\Request;
/**
* 后台菜单管理
* @date: 2016年4月28日 下午5:36:03
* @author: xiaocui
*/
class Menu extends Admin {

    /**
    * 菜单列表
    * @date: 2016年4月28日 下午5:36:21
    * @author: xiaocui
    */
    public function index(){
    	$q = input('get.q','');
    	$hide = input('get.hide','');
    	
    	$map = [];
    	if($hide!=''){
    	    $map['hide'] = $hide;
    	}
    	
    	if($q != ''){
    	    $map['title'] = ['like',"%{$q}%"];
    	}
    	
    	$list = db('menu')->field('id,pid,title,url,hide,sort')
    	->where($map)->order('type asc,id desc')
    	->paginate(10,false,['query'=>input('get.')]);
    	$page = $list->render();
    	
    	$this->assign('_list', $list);
    	$this->assign('_page', $page);
        return $this->fetch();
    }
	
    /**
     * 编辑菜单
     * @date: 2016年4月28日 下午5:36:21
     * @author: xiaocui
     */
    public function edit($id = null){
        $model = model('Menu');
        if(Request::instance()->isPost()){ 
            $_POST['icon'] = htmlspecialchars($_POST['icon']);
            if($model->save($_POST,['id'=>$id])){
                $this->success('编辑成功！','');
            } else {
                $error = $model->getError();
                $this->error(empty($error) ? '未知错误！' : $error);
            }
        } else {
            if($id){
                $info = $model->find($id);
            }
            
            $topMenu = $model->getTopMenu();
            
            $this->assign('info', $info);
            $this->assign('topMenu', $topMenu);
            return $this->fetch();
        }
    }
	
	/**
    * 添加菜单
    * @date: 2016年4月28日 下午5:36:21
    * @author: xiaocui
    */
    public function add(){
        $model = model('Menu');

        if(Request::instance()->isPost()){ 
            $_POST['icon'] = htmlspecialchars($_POST['icon']);
            if($model->save($_POST)){
                $this->success('新增成功！','');
            } else {
                $error = $model->getError();
                $this->error(empty($error) ? '未知错误！' : $error);
            }
        } else {
        	$topMenu = $model->getTopMenu();
        	$this->assign('topMenu', $topMenu);
            return $this->fetch('edit');
        }
    }
	
    /**
     * 删除
     * @date: 2016年4月28日 下午5:36:21
     * @author: xiaocui
     */
    public function del(){
        $id = array_unique((array)input('id',0));
        
        if ( empty($id) || empty($id[0]) ) {
            $this->error('请选择要操作的数据!');
        }
        $map = ['id' => ['in', $id]];
        if(model('Menu')->where($map)->delete()){
            $this->success('删除成功');
        } else {
            $this->error('删除失败！');
        }
    }
    
    /**
    * 排序
    * @date: 2018年6月2日 上午10:48:58
    * @author: xiaocui
    * @param: variable
    * @return:
    */
    public function sort(){
        if(request()->isPost()){
            $post = input('post.');
            if(isset($post['ids']) && isset($post['sort'])){
                $data = [];
                foreach ($post['ids'] as $key=>$val){
                    $data[$key]['id'] = $val;
                    $data[$key]['sort'] = intval($post['sort'][$key]);
                }
                
                if(model('Menu')->saveAll($data,true)){
                    $this->success('排序成功！');
                }
                
            }
            $this->error('提交失败！');
        }
    }
    
    /**
     * 状态 
     * @date: 2018年6月2日 上午10:48:58
     * @author: xiaocui
     * @param: variable
     * @return:
     */
    public function status($id,$hide){
        $id = intval($id);
        $hide = intval($hide);
        $model = model('Menu');
        if($model->save(['hide'=>$hide],['id'=>$id])){
            $this->success('修改成功','');
        }else{
            $this->error('修改失败！');
        }
    }
}